<?php

/**
 * Parses CSS stylesheets into machine-usable form
 *
 * ---
 *
 * Разбирает CSS.
 */
interface IStyleParser {
  /**
   * Parse external or inline CSS stylesheet.
   *
   * Note  that  style parser  may  load  external  resources as  well
   * (@import'ed stylesheets or background images).
   *
   * @param string $content raw style text
   *
   * @param  IResourceLoader $resource_loader  object  responsible for
   * loading external resources referenced by this stylesheet.
   *
   * @param  DOMNode $context_node  root DOM  node this  style  can be
   * applied  to (normally  it  is the  document  element; when  we're
   * working  with FRAME  / IFRAME,  it'll be  document note  of frame
   * contents)
   *
   * @param string $media  name of the media (if  any) this stylesheet
   * is applicable to
   *
   * @return IStyle all rules extracted from parsed content
   *
   * ---
   *
   * Обрабатывает внешний или встроенный стиль CSS.
   *
   * Обратите   внимание   на   то,   что   парсер   может   загружать
   * дополнительные внешние ресурсы (@import / background-image).
   *
   * string $content исходный текст CSS
   * 
   * IResourceLoader $resource_loader объект, ответственный за загрузку 
   * внешних ресурсов, на которые ссылается этот стиль.
   *
   * DOMNode $context_node корневой  узел DOM-дерева, к которому будет
   * применяться  этот  стиль  (обычно  это корень  документа;  в  том
   * случае, если мы работаем с  фреймами, он будет совпадать с корнем
   * содержимого фрейма).
   *
   * string $media название CSS media для текущего стиля.
   *
   * Возвращает IStyle - все правила, извлечённые из исходного кода.
   */
  function parseStylesheet($content, IResourceLoader $resource_loader, DOMElement $context_node, $media);

  /**
   * Parse value of the 'style' attribute.
   *
   * Note  that  style parser  may  load  external  resources as  well
   * (@import'ed stylesheets or background images).
   *
   * @param string $content raw style text
   *
   * @param  IResourceLoader $resource_loader  object  responsible for
   * loading external resources referenced by this stylesheet.
   *
   * @param  DOMNode $context_node  root DOM  node this  style  can be
   * applied  to (normally it's  the node  owning the  style attribute
   * we're parsing content for)
   *
   * @return IStyle all rules extracted from parsed content
   *
   * ---
   *
   * Обрабатывает значение атрибута 'style'
   *
   * Обратите   внимание   на   то,   что   парсер   может   загружать
   * дополнительные внешние ресурсы (@import / background-image).
   *
   * string $content исходный текст CSS
   * 
   * IResourceLoader $resource_loader объект, ответственный за загрузку 
   * внешних ресурсов, на которые ссылается этот стиль.
   *
   * DOMNode $context_node корневой  узел DOM-дерева, к которому будет
   * применяться   этот   стиль   (обычно   это   узел,   у   которого
   * обрабатывается атрибут style).
   *
   * Возвращает IStyle - все правила, извлечённые из исходного кода.
   */
  function parseStyleAttribute($content, IResourceLoader $resource_loader, DOMElement $context_node);
}

?>